home *** CD-ROM | disk | FTP | other *** search
- "--------------------------------------------------------"
- " GadgetArray Class is Amiga composite Gadget assemblies."
- " The methods for the Gadget Classes have changed, so "
- " this file needs a lot of re-work! "
- "--------------------------------------------------------"
-
- Class GadgetArray :Array
- ! numGadgets arrayName !
- [
- readInGadgetArray: fileName number: howMany
- ! index tempGadget gt ng le te w h fl act theFile iName !
-
- theFile <- File new.
- theFile stringMode.
- theFile open: fileName for: 'r'.
-
- index <- 1.
- [index <= howMany]
- whileTrue: [iName <- (arrayName,index).
- ng <- (theFile read).
- le <- ((theFile read) asInteger).
- te <- ((theFile read) asInteger).
- w <- ((theFile read) asInteger).
- h <- ((theFile read) asInteger).
- fl <- ((theFile read) asInteger).
- act <- ((theFile read) asInteger).
- gt <- ((theFile read) asInteger).
-
- ((gt bitAnd: 16rF) == 4) "a StrGadget:"
- ifTrue: [tempGadget <- StrGadget new].
-
- ((gt bitAnd: 16rF) == 3) "a PropGadget:"
- ifTrue: [tempGadget <- PropGadget new]
- ifFalse: [tempGadget <- BoolGadget new].
-
- tempGadget setNextGadgetName: iName to: ng.
- tempGadget setLeftEdge: iName to: le.
- tempGadget setTopEdge: iName to: te.
- tempGadget setWidth: iName to: w.
- tempGadget setHeight: iName to: h.
- tempGadget setFlags: iName to: fl.
- tempGadget setActivation: iName to: act.
- tempGadget setGadgetType: iName to: gt.
-
- tempGadget setRenderName: iName to: (theFile read).
- tempGadget setSelectName: iName to: (theFile read).
- tempGadget setITextName: iName to: (theFile read).
- tempGadget setGadgetID: iName
- to: ((theFile read) asInteger).
-
- ((gt bitAnd: 16rF) == 4) "a StrGadget:"
- ifTrue: [tempGadget changeBufferSize: iName
- toSize: ((theFile read) asInteger)
- ].
-
- ((gt bitAnd: 16rF) == 3) "a PropGadget:"
- ifTrue: [:f :h :v :hb :vb |
- f <- ((theFile read) asInteger).
- h <- ((theFile read) asInteger).
- v <- ((theFile read) asInteger).
- hb <- ((theFile read) asInteger).
- vb <- ((theFile read) asInteger).
- tempGadget setProps: iName
- flags: f
- hPot: h vPot: v
- hBody: hb vBody: vb
- ].
- index <- index + 1
- ].
- ^ numGadgets <- index
- |
- writeOutGadgetArray: fileName number: howMany
- ! index gType theFile gadg iName !
-
- theFile <- File new.
- theFile stringMode.
- theFile open: fileName for: 'w'.
-
- index <- 1.
- [index <= howMany]
- whileTrue: [iName <- (arrayName,index).
- gadg <- Gadget new.
- gType <- (gadg gadgetTypeIs: iName).
-
- ((gType bitAnd: 16rF) == 1)
- ifTrue: [gadg <- BoolGadget new].
-
- ((gType bitAnd: 16rF) == 4)
- ifTrue: [gadg <- StrGadget new]
- ifFalse: [gadg <- PropGadget new].
-
- theFile write: (gadg getNextGadgetName: iName).
- theFile write: (gadg getLeftEdge: iName).
- theFile write: (gadg getTopEdge: iName).
- theFile write: (gadg getWidth: iName).
- theFile write: (gadg getHeight: iName).
- theFile write: (gadg getFlags: iName).
- theFile write: (gadg getActivation: iName).
- theFile write: (gadg getGadgetType: iName).
- theFile write: (gadg getRenderName: iName).
- theFile write: (gadg getSelectName: iName).
- theFile write: (gadg getITextName: iName).
- theFile write: (gadg getGadgetID: iName).
-
- ((gType bitAnd: 16rF) == 4) "a StrGadget:"
- ifTrue: [theFile write: (gadg getBufferSize: iName)].
-
- ((gType bitAnd: 16rF) == 3) "a PropGadget:"
- ifTrue: [theFile write: (gadg getPropFlags: iName).
- theFile write: (gadg getHPot: iName).
- theFile write: (gadg getVPot: iName).
- theFile write: (gadg getHBody: iName).
- theFile write: (gadg getVBody: iName)
- ].
- index <- index + 1
- ].
- ^ numGadgets <- index
- |
- makeGadgetArray: howMany
- ! index tempGadget nextName render !
-
- arrayName <- Array new: howMany.
- render <- Border new.
- render initialize: (arrayName,'Bdr')
- withArray: #( 0 0 1 0 1 5
- #(0 0 20 0 20 5 20 0 0 0) 'NULL').
- index <- 1.
- [index <= howMany]
- whileTrue: [tempGadget <- BoolGadget new.
- (index < howMany)
- ifTrue: [nextName <- (arrayName,(index + 1))]
- ifFlalse: [nextName <- 'NULL'].
-
- tempGadget initialize: (arrayName,index)
- withArray: #(nextName (20 * index)
- (5 * index) 20 5 0 1 1
- render render 'NULL' index).
- index <- index + 1
- ].
- ^ numGadgets <- howMany
- |
- registerAll: howMany to: windowTitle
- ! index iName tempGadget gType !
-
- index <- 1.
- [index <= howMany]
- whileTrue: [iName <- (arrayName,index).
- tempGadget <- Gadget new.
- gType <- (tempGadget gadgetTypeIs: iName).
-
- ((gType bitAnd: 16rF) == 1)
- ifTrue: [tempGadget <- BoolGadget new].
-
- ((gType bitAnd: 16rF) == 4)
- ifTrue: [tempGadget <- StrGadget new]
- ifFalse: [tempGadget <- PropGadget new].
-
- tempGadget register: iName for: windowTitle.
- index <- index + 1
- ].
- ^ numGadgets <- index
- |
- moveGadgetArrayTo: newPoint
- ! dx dy index tGadg gType iName !
-
- dx <- newPoint x.
- dy <- newPoint y.
- tGadg <- Gadget new.
- index <- 1.
- iName <- (arrayName,index).
- gType <- tGadg gadgetTypeIs: iName.
-
- ((gType bitAnd: 16rF) == 1)
- ifTrue: [tGadg <- BoolGadget new].
-
- ((gType bitAnd: 16rF) == 4)
- ifTrue: [tGadg <- StrGadget new]
- ifFalse: [tGadg <- PropGadget new].
-
- [(tGadg getGadgetID: iName) notNil]
- whileTrue: [tGadg setStartPoint: iName
- x: (tGadg getLeftEdge: iName + dx)
- y: (tGadg getTopEdge: iName + dy).
- index <- index + 1.
- iName <- (arrayName,index).
- gType <- tGadg getGadgetType: iName.
- ((gType bitAnd: 16rF) == 1)
- ifTrue: [tGadg <- BoolGadget new].
-
- ((gType bitAnd: 16rF) == 4)
- ifTrue: [tGadg <- StrGadget new]
- ifFalse: [tGadg <- PropGadget new].
- ].
- ^ numGadgets <- index
- |
- new: newArrayName
- arrayName <- newArrayName.
- numGadgets <- 0.
- ^ self
- ]
-